/**
 * @type protype
 */
export default class c_Date {
    /**
     * 格式化时间
     * @param format 时间字符串格式
     * @example
     * new Date().Format('yyyy-MM-dd hh:mm:ss') //2021-12-17 11:30:00
     */
    static Format(fmt?: any) {
        //@ts-ignore
        const _this: Date = this
        if (!fmt) fmt = 'yyyy-MM-dd hh:mm:ss'
        var o: any = {
            'M+': _this.getMonth() + 1, //月份
            'd+': _this.getDate(), //日
            'h+': _this.getHours(), //小时
            'm+': _this.getMinutes(), //分
            's+': _this.getSeconds(), //秒
            'q+': Math.floor((_this.getMonth() + 3) / 3), //季度
            S: _this.getMilliseconds() //毫秒
        }
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (_this.getFullYear() + '').substring(4 - RegExp.$1.length))
        for (var k in o)
            if (new RegExp('(' + k + ')').test(fmt))
                fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substring(('' + o[k]).length))
        return fmt
    }

    /**
     * 获取时间是星期几，默认获取今天
     */
    static getWeek(date?: Date) {
        //@ts-ignore
        const _this: Date = date ?? this
        var a = new Array('日', '一', '二', '三', '四', '五', '六')
        var week = _this.getDay()
        return '星期' + a[week]
    }
}
